/**
 * @filaname dingtalk
 * @description
 * @author  Rocky
 * @date    2019-09-28 16:40
 * @email   jintaozhao@qq.com
 * @version 1.0.0
 */

$(function () {

    let appId = 'dingoavcvjovzmdkiwnuhx'; // appId 点击创建扫码登录应用授权生成
    // 生产环境
    let baseUrl = encodeURIComponent('http://47.98.251.133:8081/dingtalk/login_qr'); // 回调域名：扫码成功跳转的url，需要进行编码
    // 本地测试环境
    // let baseUrl = encodeURIComponent('http://192.168.9.131:8081/dingtalk/login_qr'); // 回调域名：扫码成功跳转的url，需要进行编码
    let url = encodeURIComponent(
        `https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=${appId}&response_type=code&scope=snsapi_login&state=STATE&redirect_uri=${baseUrl}`
    ); // goto参数,需要进行编码
    var obj = DDLogin({
        id: "login_container", //这里需要你在自己的页面定义一个HTML标签并设置id
        goto: url, // 转码后的url
        style: "background-color:rgba(255, 255, 255, 0.5);border:1px solid rgba(255, 255, 255, .3);border-radius:3px;", // 二维码的样式
        width: "295", // 二维码的宽度
        height: "310" // 二维码的高度
    });
    // width和height不代表二维码的大小，二维码大小是固定的210px210px。
    var hanndleMessage = function (event) {
        var origin = event.origin;
        if (origin == "https://login.dingtalk.com") { //判断是否来自ddLogin扫码事件。
            var loginTmpCode = event.data; //拿到loginTmpCode后就可以在这里构造跳转链接进行跳转了
            console.log("loginTmpCode", loginTmpCode);
            // 通过JS获取到loginTmpCode后，需要由你构造并跳转到如下链接：
            // `https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=APPID&response_type=code&scope=snsapi_login&state=STATE&redirect_uri=REDIRECT_URI&loginTmpCode=loginTmpCode`
            // 此链接处理成功后，会302跳转到你goto参数指定的redirect_uri，并向url参数中追加临时授权码code及state两个参数。
            window.location.href = `https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=${appId}&response_type=code&scope=snsapi_login&state=STATE&redirect_uri=${baseUrl}&loginTmpCode=${loginTmpCode}` //
        }
    };
    if (typeof window.addEventListener != 'undefined') {
        window.addEventListener('message', hanndleMessage, false);
    } else if (typeof window.attachEvent != 'undefined') {
        window.attachEvent('onmessage', hanndleMessage);
    }
});